﻿/************************************************************************
** 文  件：
**	ConfigService.h
** 功  能：
**	系统配置项服务，提供配置项的增删改查
** 作  者：
**	email:lixx2048@163.com
**  wechat:lixiang6153
**  QQ:941415509
** 日  期：
**	2024/03/15	14:00:00
** 说  明：
**	无
** 版  本：
**	2024/03/15	14:00:00		1.0		lixx2048@163.com
/************************************************************************/
#pragma once
#include "../db/IDbBase.h"
#include "../entity/ConfigInfo.h"
#include "../entity/UserInfo.h"
#include "BaseService.h"

class ConfigService
	: public IBaseService<ConfigInfo>
{
public:
	ConfigService();
	virtual ~ConfigService();

public:
	// 表是否存在
	bool Exist();
	// 创建表
	bool Create();
	// 增加记录
	bool Add(ConfigInfo& itme);
	// 删除记录
	bool Delete(ConfigInfo& item, bool delFromDB = true);
	// 查询数量
	int Count();
	// 查找记录
	bool FindPage(int pageIndex, int pageSize, std::vector<ConfigInfo>& list);
	// 查找记录
	bool Find(ConfigInfo& item);
	// 查找配置
	bool FindByKey(ConfigInfo& item);
	// 查找用户
	bool FindAdmin(UserInfo& user);
	// 添加管理员
	bool AddAdmin(UserInfo& user);
	// 更新记录
	bool Update(ConfigInfo& item);
	bool UpdateByKey(ConfigInfo& item);
	// 更新密码
	bool UpdateAdmin(UserInfo& user);

protected:
	// 行记录转实体记录
	void ToRecord(IDbBasePtr db, ConfigInfo& item);
};

typedef std::shared_ptr<ConfigService> ConfigServicePtr;